Skip to content

fix(skills): make stash-managed-platforms frontmatter valid YAML - #954

Open
coderdan wants to merge 1 commit into
mainfrom
fix/cip-3900-managed-platforms-frontmatter
Open

fix(skills): make stash-managed-platforms frontmatter valid YAML#954
coderdan wants to merge 1 commit into
mainfrom
fix/cip-3900-managed-platforms-frontmatter

Conversation

@coderdan

Copy link
Copy Markdown
Contributor

skills/stash-managed-platforms/SKILL.md has an unquoted description: containing : :

... the platform guards that break installs: command-time ceilings that kill ...

A plain YAML scalar can't hold a colon-space, so anything parsing this frontmatter throws:

incomplete explicit mapping pair; a key node is missed; or followed by
a non-tabulated empty line at line 3, column 856

cipherstash.com mirrors these skills at build time (the marketing app's prebuild runs generate-agent-skills.mjs against cipherstash/stack@main), so this broke that site's deploys on every branch, not only ones touching skills. It surfaced on an unrelated dashboard PR.

Rewritten as a folded block scalar (>-), which is safe for both the colons and the embedded "version too new" quotes. The parsed string is byte-for-byte identical to before — verified against the current main file:

identical: true

All 14 skills now parse; stash-managed-platforms was the only broken one.

Closes CIP-3900

https://claude.ai/code/session_01HnNBVu5xeEQ8AdVgLxkKWL

The description was an unquoted YAML scalar containing ": " ("...guards
that break installs: command-time ceilings..."), which is invalid — a
plain scalar can't hold a colon-space. Every consumer that parses the
frontmatter throws on it.

cipherstash.com mirrors these skills at build time via the marketing
app's prebuild step, so this took down that site's deploys on every
branch, not just the one that touched skills.

Rewrites the value as a folded block scalar, which handles both the
colons and the embedded double quotes. The parsed string is byte-for-byte
what it was.

Closes CIP-3900

Claude-Session: https://claude.ai/code/session_01HnNBVu5xeEQ8AdVgLxkKWL
@coderdan
coderdan requested a review from a team as a code owner August 29, 2026 03:17
@changeset-bot

changeset-bot Bot commented Aug 29, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 1e8be06

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@freshtonic freshtonic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing blocks this, and it's small: it needs a stash patch changeset.

Everything substantive verified:

  • The bug is real: parsing main's frontmatter with js-yaml fails ("bad indentation of a mapping entry (3:856)") — the unquoted installs: command-time colon-space, exactly as described.
  • The >- folded scalar parses, and the parsed description is byte-for-byte identical to the old raw line (I diffed them programmatically). The body is untouched.
  • CI is green.

But skills/ ships inside the stash npm tarball, and AGENTS.md is explicit that a skills-only change is not internal — it needs a stash patch changeset (changeset-bot flagged this too). Without one, the currently published tarball keeps shipping the unparseable frontmatter to every stash init and the fix only ever reaches the marketing site's main-branch mirror. The changeset is what makes this fix ship.

Suggested text:

---
'stash': patch
---

Fix invalid YAML in `skills/stash-managed-platforms/SKILL.md` frontmatter: the
unquoted `description` contained a colon-space, so any YAML parser rejected the
file (this broke cipherstash.com deploys, which mirror these skills at build
time). Rewritten as a folded block scalar; the parsed description is
byte-for-byte identical.

Add that and this is an insta-approve.

One heads-up, not blocking: #951 edits this same file's body (managed-platforms snippet + the "three things" list) — frontmatter vs body, so no textual conflict expected, but whichever merges second should double-check the rebase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants